package com.zn.service;

import com.zn.entity.AppCustomer;
import com.zn.entity.CustomerBankInfo;
import com.zn.vo.Message;
import com.zn.web.dto.AppCustomerDto;
import org.springframework.http.ResponseEntity;

/**
 * Created by yinji on 2018/7/9.
 */
public interface AppCustomerService {
    /**
     * 客户注册
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> customerRegister(AppCustomerDto appCustomerDto);

    /**
     * 客户找回交易账户
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> retrieveAccount(AppCustomerDto appCustomerDto);

    /**
     * 注册成功发送交易账户短信通知
     * @param customerTel
     * @param tradeAccount
     */
    public void registerSuccessSms(String customerTel,String tradeAccount,String smsTemplate);

    /**
     * 根据电话号码查询客户
     * @param customerTel
     * @return
     */
    public AppCustomer selectByCustomerTel(String customerTel);

    /**
     * 客户登录
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> customerLogin(AppCustomerDto appCustomerDto);

    /**
     * 修改客户密码 0-修改交易密码 1-修改资金密码
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> updateCustomerPassword(AppCustomerDto appCustomerDto);

    /**
     * 客户初始设置资金密码
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> initCustomerCapitalPassword(AppCustomerDto appCustomerDto);

    /**
     * 校验用户资金密码是否
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> checkCustomerCapitalPassword(AppCustomerDto appCustomerDto);

    /**
     * 根据客户ID 获取客户信息
     * @param customerId
     * @return
     */
    public AppCustomer getCustomerInfo(String customerId);

    /**
     * 用户认证接口
     * @param idCardFrontFilePath 身份证正面
     * @param idCardReverseFilePath 身份证反面
     * @param idCard 身份证
     * @param name 姓名
     * @return
     */
    ResponseEntity<Message> certification(String idCardFrontFilePath,String idCardReverseFilePath,String idCard,String name,String customerId) throws Exception;

    /**
     * 重置账户密码 0-修改交易密码 1-修改资金密码
     * @param appCustomerDto
     * @return
     */
    public ResponseEntity<Message> resetCustomerPassword(AppCustomerDto appCustomerDto);

    /**
     * rpc去查询客户的代付情况
     * @param customerId
     */
    public void dfQueryByCustomerf(String customerId);
}
